package cn.zhoujing.demo.jwt.enums;

/**
 * @author zhoujing
 * @createTime 2023/11/19 - 14:56
 */
public enum AuthorizedGrantTypeEnum {

    /**
     * 授权码模式,这个是标准模式
     */
    AUTHORIZATION_CODE(0, "authorization_code"),
    /**
     * 简单模式,这个主要是给无后台的纯前端项目用的
     */
    PASSWORD(1, "password"),
    /**
     * 密码模式,直接拿用户的账号密码授权,不安全
     */
    CLIENT_CREDENTIALS(2, "client_credentials"),
    /**
     * 客户端模式,用client_id和密码授权,和用户无关的授权方式
     */
    IMPLICIT(3, "implicit"),
    /**
     * 使用有效的refresh_token去重新生成一个token,之前的会失效
     */
    REFRESH_TOKEN(4, "refresh_token"),
    ;


    private Integer code;

    private String typeName;


    AuthorizedGrantTypeEnum(Integer code, String typeName) {
        this.code = code;
        this.typeName = typeName;
    }

    public Integer getCode() {
        return code;
    }

    public String getTypeName() {
        return typeName;
    }
}
